#ifndef _GEOMHEAD_
#define _GEOMHEAD_

#include "GeomObject.h"

// doesnt contain rotation
class GeomHead: public GeomObject{
protected:
	Vec3d mDim;
public:
	// Constructor
	GeomHead(Vec3d _center, Vec3d _dim) : mDim(_dim){
		for(int i=0; i<3; i++) mTransform[i][3]=_center[i];
		mType=HEAD;
	}
	GeomHead(Vec3d _dim) : mDim(_dim){
		mType=HEAD;
	}
	
	bool isInside(Vec3d _pt){
		printf("Error in line %d in file %s: Not Yet Implemented!\n", __LINE__, __FILE__);
		return false;
	}
	// Get signed distance to inPoint
	inline double getSignedDist(const Vec3d &inPoint){
		printf("Error in line %d in file %s: Not Yet Implemented!\n", __LINE__, __FILE__);
		return 0;
	}
	double getVolume(){
		printf("Error in line %d in file %s: Not Yet Implemented!\n", __LINE__, __FILE__);
		return 0;
	}

	void draw(Vec4d _col=Vec4d(vl_1), bool _default=true);

	inline Vec3d getDim(){ return mDim; }
	void setExtent(Vec3d _d){mDim=_d;}

	// Transform a plane by the inverse of inInverseMatrix
	GeomObject* getObjApplyInvTransform(const Mat4d &_mat);

};

#endif
